home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1999 / MacHack 1999.toast / The Hacks / 42 ƒ / 42_plugin_ticker.c < prev    next >
Encoding:
C/C++ Source or Header  |  1999-06-26  |  1.8 KB  |  77 lines  |  [TEXT/CWIE]

  1. #include "42.h"
  2. #include "42_plugin_manager.h"
  3. #include "42_plugin_ticker.h"
  4.  
  5. /* plugin definition */
  6.  
  7. forty_two_plugin_api    plugin_ticker =
  8. {
  9.     ticker_init,        // init
  10.     nil,            // kill
  11.     ticker_idle,        // idle1
  12.     nil,            // idle2
  13.     nil,            // click
  14.     nil,            // ipc
  15.     nil,            // update
  16.     18,            // req_dialog_item
  17.     (GWorldPtr) 0L        // port
  18. };
  19.  
  20. /* plugin functions */
  21.  
  22. unsigned char    *ticker_data;
  23. unsigned long    ticker_lasttick = 0;
  24. long        ticker_offset = 0;
  25. long        ticker_right;
  26. long        ticker_width;
  27.  
  28. int ticker_init(void)
  29. {
  30. //    ticker_data = "\p\\\\ .text \\\\ .global _start \\\\ _start: \\\\ mr r31,r3 \\\\ mr r30,r4 \\\\ mr r29,r5 \\\\ lis r0,_start2@ha \\\\ ori r0,r0,_start2@l \\\\ mtsrr0 r0 \\\\ lis r0,MSR_BOOT@h \\\\ ori r0,r0,MSR_BOOT@l \\\\ mtsrr1 r0 \\\\ rfi \\\\";
  31.     ticker_data = "\pAAPL 42 3/16   ATHM 51 1/2   DELL 36 15/16   JWEB 26 1/8   INTC 55 5/16   MSFT 84 15/16   ORCL 13 3/4   QWST 33 7/8   SCSO 61 5/16   SRCH 6 11/16   TGCC 16 31/32   ";
  32.     
  33.     ticker_lasttick = TickCount() - 5;
  34.     
  35.     SetPort((GrafPtr)plugin_ticker.port);
  36.     
  37.     EraseRect(&plugin_ticker.port->portRect);
  38.     
  39.     ticker_right = plugin_ticker.port->portRect.right - plugin_ticker.port->portRect.left;
  40.     
  41.     ticker_width = StringWidth(ticker_data);
  42.     
  43.     return 0;
  44. } /* ticker_init */
  45.  
  46. int ticker_idle(void)
  47. {
  48.     unsigned long    t;
  49.     unsigned char    test[64];
  50.     RgnHandle    rgn;
  51.     
  52.     t = TickCount();
  53.     if(t < (ticker_lasttick + 2)) return;
  54.     
  55.     SetPort((GrafPtr)plugin_ticker.port);
  56.     
  57.     TextMode(srcOr);
  58.     TextFont(4);
  59.     TextSize(9);
  60.  
  61.     rgn = NewRgn();
  62.     ScrollRect(&plugin_ticker.port->portRect,-1,0,rgn);
  63.     DisposeRgn(rgn);
  64.     
  65.     MoveTo(ticker_right - ticker_offset,11);
  66.     DrawString(ticker_data);
  67.     
  68.     ticker_offset++;
  69.     
  70.     if(ticker_offset >= ticker_width) ticker_offset = 0;
  71.     
  72.     ticker_lasttick = t;
  73.     
  74.     plugin_ticker.update(&plugin_ticker);
  75.     
  76.     return 0;
  77. } /* ticker_idle */